#ifndef COMMON_H
#define COMMON_H

#include <iostream>
#include <string>
#include <vector>
#include <memory>
#include <stdexcept>
#include <limits>
#include <unordered_map>
#include <utility>
#include <algorithm>

using namespace std;

class Utils {
public:
    static void clearInputBuffer() {
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
    }
    
    static int getIntInput(const string& prompt) {
        int value;
        while (true) {
            cout << prompt;
            cin >> value;
            if (cin.fail()) {
                cout << "输入错误，请输入一个整数！" << endl;
                clearInputBuffer();
            } else {
                clearInputBuffer();
                return value;
            }
        }
    }
    
    static string getStringInput(const string& prompt) {
        string value;
        cout << prompt;
        getline(cin, value);
        return value;
    }
};

#endif